Users are continually exposed to ever increasing amounts of information. For example, a user may perform a search using a search engine to locate web sites of interest, may peruse an address book to locate a particular contact, may navigate through songs in a playlist, locate a particular file on a computer, and so on. Each of these items may be displayed utilizing a variety of techniques so that the user may locate a particular item of interest.
Once such technique utilized to display a collection of items in a user interface is referred to as a “list view”. In a list view, each item of the list is allocated a portion of a display area in which to be rendered. The portions corresponding to each of the items in the list are then arranged, such as placed in an order, one after another, placed in a grid, and so on. The list may be configured such that geometric location of the items in the list reflects a property of the items. For example, items in a list may be arranged in alphabetical order, date created, when modified, and so on. If there are more items in the list than fit on the display area at any one time, the user may scroll through the list to reveal the additional items that would not be displayed otherwise.
List views, however, are typically unable to show complicated relationships between the items in the list. For example, traditional list views are unable to show hierarchical data structures, such as organizational charts, directory trees, and so one. A traditional list view, for instance, may sequentially order items in the list, one after another, but cannot be utilized to show an organizational chart because of the inability of the list view to show hierarchical relationships that exist in addition to the sequential ordering of the items.
In order to show hierarchical data structures, a “tree view” may be utilized. A tree view displays items in a list. However, each item in the list in a tree view can also include another list of items displayed “above” or “below” it in a tree. Typically, the items at one level of the tree are spaced further apart to allow room for the items at the next level of the tree. Accordingly, tree views are also limited by the number of items in the list than fit on the display area at any one time. Therefore, the user must scroll through the items in a tree view to reveal additional items that would not be displayed otherwise. Further, if there are more hierarchical levels in the tree than can be displayed at any one time, the user must also scroll through the levels to determine the relationship(s), if any, of items in one hierarchical level of the tree with items in another hierarchical level of the tree. Therefore, these traditional ways of viewing collections of items do not allow a user to readily judge a size of a result that has more items than can be viewed on the user interface at any one time.
Accordingly, there is a continuing need for improved techniques for viewing collections of items.